import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 解码
     * @param nums string字符串 数字串
     * @return int整型
     */
    public int solve (String nums) {
        // write code here
        if(nums.equals("0")){
            return 0;//特殊情况0
        }
        if(nums.equals("10")||nums.equals("20")){
            return 1;
        }
        for(int i=1;i<nums.length();i++){
            if(nums.charAt(i)=='0'&&(nums.charAt(i-1)!='1'&&nums.charAt(i-1)!='2')){
                return 0;
            }
        }
        int[] dp=new int[nums.length()+1];
        Arrays.fill(dp,1);
        for(int i=2;i<=nums.length();i++){//11到19和21到26
if((nums.charAt(i-2)=='1'&&nums.charAt(i-1)!='0')||(nums.charAt(i-2)=='2'&&nums.charAt(i-1)>'0'&&nums.charAt(i-1)<'7')){
    dp[i]=dp[i-1]+dp[i-2];
}else{
    dp[i]=dp[i-1];
}
        }
        return dp[nums.length()];
    }
}